Watermarking via quantization of statistics of overlapping regions

ABSTRACT

An implementation of a technology, described herein, for facilitating watermarking of digital goods. At least one implementation, described herein, performs quantization watermarking based upon semi-global characteristics of multiple regions of the digital good. Such regions are permissively overlapping. The scope of the present invention is pointed out in the appending claims.

TECHNICAL FIELD

[0001] This invention generally relates to a technology for facilitatingwatermarking of digital goods.

BACKGROUND

[0002] Digital goods are often distributed to consumers over private andpublic networks—such as Intranets and the Internet. In addition, thesegoods are distributed to consumers via fixed computer readable media,such as a compact disc (CD-ROM), digital versatile disc (DVD), softmagnetic diskette, or hard magnetic disk (e.g., a preloaded hard drive).

[0003] Unfortunately, it is relatively easy for a person to pirate thepristine digital content of a digital good at the expense and harm ofthe content owners—which includes the content author, publisher,developer, distributor, etc. The content-based industries (e.g.,entertainment, music, film, etc.) that produce and distribute contentare plagued by lost revenues due to digital piracy.

[0004] Modern digital pirates effectively rob content owners of theirlawful compensation. Unless technology provides a mechanism to protectthe rights of content owners, the creative community and culture will beimpoverished.

[0005] “Digital goods” is a generic label for electronically stored ortransmitted content. Examples of digital goods include images, audioclips, video, multimedia, software, and data. Digital goods may also becalled a “digital signal,” “content signal,” “digital bitstream,” “mediasignal,” “digital object,” “object,” and the like.

[0006] Watermarking

[0007] Watermarking is one of the most promising techniques forprotecting the content owner's rights of a digital good. Generally,watermarking is a process of altering the digital good such that itsperceptual characteristics are preserved. More specifically, a“watermark” is a pattern of bits inserted into a digital good that maybe used to identify the content owners and/or the protected rights.

[0008] Generally, watermarks are designed to be invisible or, moreprecisely, to be imperceptible to humans and statistical analysis tools.

[0009] A watermark embedder (i.e., encoder) is used to embed a watermarkinto a digital good. A watermark detector is used to detect (or extract)the watermark in the watermarked digital good. Watermark detection isoften performed in real-time even on small devices.

[0010] Blind Watermarking

[0011] To detect the watermark, some watermarking techniques requireaccess to the original unmarked digital good or to a pristine specimenof the marked digital good. Of course, these techniques are notdesirable when the watermark detector is available publicly. If publiclyavailable, then a malicious attacker may get access to the originalunmarked digital good or to a pristine specimen of the marked digitalgood. Consequently, these types of techniques are not used for publicdetectors.

[0012] Alternatively, watermarking techniques are “blind.” This meansthat they do not require access to the original unmarked digital good orto a pristine specimen of the marked digital good. Of course, these“blind” watermarking techniques are desirable when the watermarkdetector is publicly available.

[0013] Conventional Watermarkinig Technology

[0014] Conventional technologies for watermarking media signals rely onthe imperfections of human perceptions (e.g., the human auditory system(HAS) or the human visual system (HVS)). For example, in the realm ofaudio signals, several conventional secret hiding techniques explore thefact that the HAS is insensitive to small amplitude changes—either inthe time or frequency domains—as well as insertion of low-amplitudetime-domain echoes.

[0015] The watermark can be regarded as an additive signal w, whichcontains the encoded and modulated watermark message b under constraintson the introduced perceptible distortions given by a mask M so that:

x×=s+w(M).

[0016] Commonly-used conventional watermark embedding techniques can beclassified into spread-spectrum (SS) (which is often implemented usingadditive or multiplicative techniques) and quantization-basedwatermarking schemes.

[0017] Those of ordinary skill in the art are familiar with conventionaltechniques and technology associated with watermarks, watermarkembedding, and watermark detecting.

[0018] Robustness

[0019] In most watermarking applications, the marked goods are likely tobe processed in some way before it reaches the receiver of thewatermarked content. The processing could be lossy compression, signalenhancement, or digital-to-analog (D/A) and analog-to-digital (A/D)conversion. An embedded watermark may unintentionally or inadvertentlybe impaired by such processing. Other types of processing may be appliedwith the explicit goal of hindering watermark reception. This is anattack on the watermark (or the watermarked good) by a so-calledadversary.

[0020] In watermarking terminology, an attack may be thought of as anyprocessing that may impair detection of the watermark or communicationof the information conveyed by the watermark or intends to do so. Also,an attack may create a false alarm on an un-watermarked content toappear as if it is watermarked. The processed watermarked goods may bethen called attacked goods.

[0021] Of course, key aspect of a watermarking technology is itsrobustness against attacks. The notion of robustness is intuitivelyclear to those of ordinary skill in the art: A watermark is robust if itcannot be impaired without also rendering the attacked goods lessuseful.

[0022] Watermark impairment can be measured by several criteria, forexample: miss probability, probability of bit error, or channelcapacity. For multimedia, the usefulness of the attacked data can begauged by considering its perceptual quality or distortion. Hence,robustness may be evaluated by simultaneously considering watermarkimpairment and the distortion of the attacked good.

[0023] False Alarms & Misses

[0024] When watermarking, one does not want a high probability of afalse alarm. That is when a watermark is detected, but none was insertedinto the content by the watermarking agent. This is something likefinding evidence of a crime that did not happen. Someone may be falselyaccused of wrongdoing.

[0025] As the probability of false alarms increases, the confidence inthe watermarking technique decreases. For example, people often ignorecar alarms because they know that more often than not it is a falsealarm rather than an actual car theft.

[0026] Likewise, one does not want a high probability of a miss. Anevent of “miss” happens when watermark is not detected (i.e., declaredto be not present) although it was supposed to be detected. This issomething like being unable to detect the evidence in a crime sceneeither by oversight or inability to do so. Because of this, a wrongdoingmay never be properly investigated. As the probability of missesincreases, the confidence in the watermarking technique decreases.

[0027] Ideally, the probabilities of a false alarm and a miss are zero.In reality, a compromise is often made between them. Typically, adecrease in the probability of one increases the probability of theother. For example, as the probability of false alarm is decreased, theprobability of a miss increases.

[0028] Consequently, it is desirable to minimizes both while finding aproper balance between them.

SUMMARY

[0029] Described herein is a technology for facilitating watermarking ofdigital goods.

[0030] The technology, described herein, performs watermarking basedupon non-local characteristics of multiple regions of the digital good.Such regions are permissively overlapping.

[0031] This summary itself is not intended to limit the scope of thispatent. Moreover, the title of this patent is not intended to limit thescope of this patent. For a better understanding of the presentinvention, please see the following detailed description and appendingclaims, taken in conjunction with the accompanying drawings. The scopeof the present invention is pointed out in the appending claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0032] The same numbers are used throughout the drawings to referencelike elements and features.

[0033]FIG. 1 is a schematic block diagram showing a watermarkingarchitecture in accordance with an implementation described herein.

[0034]FIG. 2 shows an image with examples of regions employed by animplementation that is restrictively non-overlapping.

[0035]FIG. 3 shows an image with examples of regions employed by animplementation, in accordance with at least one described herein, thatis permissively overlapping.

[0036]FIG. 4 is a schematic block diagram showing an embodiment (e.g., awatermark embedding system) described herein.

[0037]FIG. 5 is a schematic block diagram showing an embodiment (e.g., awatermark detecting system) described herein.

[0038]FIG. 6 is a flow diagram showing an illustrative methodologicalimplementation (e.g., watermark embedding) described herein.

[0039]FIG. 7 is a flow diagram showing an illustrative methodologicalimplementation (e.g., watermark detecting) described herein

[0040]FIG. 8 is a flow diagram showing an illustrative methodologicalimplementation (e.g., watermark embedding) described herein.

[0041]FIG. 9 is a flow diagram showing an illustrative methodologicalimplementation (e.g., watermark detecting) described herein

[0042]FIG. 10 is an example of a computing operating environment capableof implementing at least one embodiment (wholly or partially) describedherein.

DETAILED DESCRIPTION

[0043] In the following description, for purposes of explanation,specific numbers, materials and configurations are set forth in order toprovide a thorough understanding of the present invention. However, itwill be apparent to one skilled in the art that the present inventionmay be practiced without the specific exemplary details. In otherinstances, well-known features are omitted or simplified to clarify thedescription of the exemplary implementations of present invention,thereby better explain the present invention. Furthermore, for ease ofunderstanding, certain method steps are delineated as separate steps;however, these separately delineated steps should not be construed asnecessarily order dependent in their performance.

[0044] The following description sets forth one or more exemplaryimplementations of a Watermarking via Quantization of Statistics ofOverlapping Regions that incorporate elements recited in the appendedclaims. These implementations are described with specificity in order tomeet statutory written description, enablement, and best-moderequirements. However, the description itself is not intended to limitthe scope of this patent.

[0045] The inventors intend these exemplary implementations to beexamples. The inventors do not intend these exemplary implementations tolimit the scope of the claimed present invention. Rather, the inventorshave contemplated that the claimed present invention might also beembodied and implemented in other ways, in conjunction with otherpresent or future technologies.

[0046] An example of an embodiment of a Watermarking via Quantization ofStatistics of Overlapping Regions may be referred to as an “exemplarywatermarker.”

[0047] Introduction

[0048] The exemplary watermarker may be implemented (wholly orpartially) on computing systems and computer networks like that show inFIG. 10. Furthermore, the exemplary watermarker may be implemented(wholly or partially) on a digital goods validation system like thatshow in FIG. 10. Although the exemplary watermarker may have manyapplications, cryptosystems, authorization, and security are examples ofparticular applications.

[0049] The exemplary watermarker relates to watermarking digital goodsvia quantization of the content. One implementation, described herein,watermarks are embedded via quantization of random linear statistics ofrandomly chosen regions of content. Such an implementation may employoverlapping regions of the content, which enhances the watermarkrobustness and security properties.

[0050] In general, the exemplary watermarker derives robust semi-globalcharacteristics of a digital good. It quantizes such characteristics forblind watermarking of the digital good.

[0051] When randomization is mentioned herein, it should be understoodthat the randomization is carried out by means of a pseudorandom numbergenerator whose seed is the secret key (K), where this key is known toboth the watermark embedder and detector. It is, however, unknown to theadversary.

[0052] Exemplary Semi-Global Watermarking Architecture

[0053]FIG. 1 shows a digital goods production and distributionarchitecture 100 (i.e., digital goods validation system) having acontent producer/provider 122 that produces original content anddistributes the content over a network 124 to a client 126. The contentproducer/provider 122 has a content storage 130 to store digital goodscontaining original content. The content producer 122 has a watermarkembedding system 132 to sign the digital signals with a watermark thatuniquely identifies the content as original. The watermark embeddingsystem 132 may be implemented as a standalone process or incorporatedinto other applications or an operating system.

[0054] The watermark embedding system 132 applies the watermark to adigital signal from the content storage 130. Typically, the watermarkidentifies the content producer 122, providing a signature that isembedded in the signal and cannot be cleanly removed.

[0055] The content producer/provider 122 has a distribution server 134that distributes the watermarked content over the network 124 (e.g., theInternet). A signal with a watermark embedded therein represents to arecipient that the signal is being distributed in accordance with thecopyright authority of the content producer/provider 122. The server 134may further compress and/or encrypt the content conventional compressionand encryption techniques prior to distributing the content over thenetwork 124.

[0056] Typically, the client 126 is equipped with a processor 140, amemory 142, and one or more content output devices 144 (e.g., display,sound card, speakers, etc.). The processor 140 runs various tools toprocess the marked signal, such as tools to decompress the signal,decrypt the date, filter the content, and/or apply signal controls(tone, volume, etc.). The memory 142 stores an operating system 150(such as a Microsoft® Windows XP® operating system), which executes onthe processor. The client 126 may be embodied in many different ways,including a computer, a handheld entertainment device, a set-top box, atelevision, an appliance, and so forth.

[0057] The operating system 150 implements a client-side watermarkdetecting system 152 to detect watermarks in the digital signal and acontent loader 154 (e.g., multimedia player, audio player) to facilitatethe use of content through the content output device(s) 144. If thewatermark is present, the client can identify its copyright and otherassociated information.

[0058] The operating system 150 and/or processor 140 may be configuredto enforce certain rules imposed by the content producer/provider (orcopyright owner). For instance, the operating system and/or processormay be configured to reject fake or copied content that does not possessa valid watermark. In another example, the system could load unverifiedcontent with a reduced level of fidelity.

[0059] Exemplary Watermarker

[0060] The exemplary watermarker derives pseudorandom statistics ofpseudo-randomly chosen regions, where these regions may permissivelyoverlap. The statistics derivation is carried out in the transformdomain (possibly wavelets for images and MCLT for audio).

[0061] Examples of such pseudo-random statistics may be linearstatistics. These linear statistics of a (pseudo-randomly) chosen regionare given by weighted linear combination of data in that region (whereweights are chosen pseudo-randomly).

[0062] In order to embed watermark information, the exemplarywatermarker quantizes these statistics given multiple (e.g., two)quantizers. Although the exemplary watermarker, described herein,focuses on scalar uniform quantization, the quantizers can in general bevector quantizers. For example, lattice vector quantizers may be usedbecause they may be more tractable for high dimensional quantization.

[0063] Furthermore, the exemplary watermarker may use error correctioncodes to add controlled redundancy to the message to be transmitted inorder to produce the watermark vector that shall be embedded (controlledredundancy is added to the message, not to the watermarked good). Thedecoder uses ML (Maximum-Likelihood) decoding or possibly anapproximation to it (e.g., nearest neighbor decoding) in order to decidewhich quantizer was most likely used. In case of usage of errorcorrection codes, the approximate ML decoder is followed by iterativeerror correction decoding to decode the message to improve theperformance.

[0064] Typically, the decision on the existence of a watermark iscarried out via thresholding of a distance between the embeddedwatermark and the watermarked that we would like to detect. An exampleof such a distance could be Hamming distance. Of course, otherperceptual distance metrics may be employed. Yet another method fordecoding would be soft decoding instead of hard decoding where thedetector applies thresholding to the log-likelihood ratio of thedecision statistics in order to reach a decision.

[0065] The exemplary watermarker is not limited to non-overlappingregions. Rather, it permits overlapping regions. The exemplarywatermarker initially generates a quantization noise sequence using theminimum norm criterion. The existence of such a noise sequence isguaranteed under some mild assumptions.

[0066] There are, at least, two approaches for the exemplarywatermarker. In one approach, the norm of the additive noise introducedin quantization is minimized. In another approach, the distance ofmultiplicative noise to unity introduced in quantization is minimized.

[0067] Local Characteristics

[0068] Conventional quantization watermarking relies upon localcharacteristics within a signal (i.e., a digital good). To quantize,conventional quantization watermarking relies exclusively upon thevalues of “individual elements” of the host signal. When quantizing,only the local characteristics of an “individual element” areconsidered. These local characteristics may include value (e.g., color,amplitude) and relative positioning (e.g., positioning in time and/orfrequency domains) of an individual pixel or transform coefficient.

[0069] Modifications—from either an attack or unintentional noise—canchange local characteristics of a signal quite dramatically withoutbeing perceptually significant (i.e., audible or visible). For example,these modifications may have a dramatic affect on the value of a pixelor relevant transform coefficients or the amplitude of a sample of anaudio clip, without being perceptible.. However, such modifications areexpected to have little effect on the semi-global characteristics of asignal. In fact, having little effect is desirable for our designmethod, where we embed information to the semi-global characteristics.

[0070] Semi-Global Characteristics

[0071] Semi-global characteristics are representative of generalcharacteristics of a group or collection of individual elements. As anexample, they may be statistics or features of “regions” (i.e.,“segments”). Semi-global characteristics are not representatives of theindividual local characteristics of the individual elements; rather,they are representatives of the perceptual content of the group (e.g.,segments) as a whole.

[0072] The semi-global characteristics may be determined by amathematical or statistical representation of a group. For example, itmay be an average of the color values of all pixels in a group.Consequently, such semi-global characteristics may also be called“statistical characteristics.” Local characteristics do not representrobust statistical characteristics.

[0073] Overlapping Regions

[0074] The regions for watermarking of robust semi-globalcharacteristics may be permissively contiguous with each other or not.Contiguous regions may also be described as overlapping. Thus, suchwatermarking methods may be defined, in part, as the methods whichemploy regions that are either permissively overlapping or restrictivelynon-overlapping.

[0075]FIG. 2 illustrates an image 200 with multiple non-overlappingregions 210-222. In FIG. 2, the regions are rectangles. They are alsoadjacent and non-contiguous. Herein, non-contiguous is non-overlapping.Note that none of the illustrated rectangles 210-220 cover common imagearea. The rectangles of FIG. 2 illustrate an example of a pseudorandomconfiguration of regions that are restrictively non-overlapping.

[0076] The following pending patent application describes one or moreimplementations statistics quantization watermarking where regions arerestrictively non-overlapping: Pending U.S. patent application Ser. No.09/843,279, filed on Apr. 24, 2001, titled “Derivation and QuantizationOf Robust Non-Local Characteristics For Blind Watermarking” and assignedto Microsoft Corporation.

[0077] With a statistics quantization watermarking method, that embedsthe watermark in the statistics of strictly non-overlapping regions, theeffect of the watermarking is dispersed over a reproduciblepseudorandomly selected region (such as region 218). Overlapping ofthese regions is restricted because the effect of watermarking in oneregion does not affect another in non-overlapping case. If they were tooverlap, then the cross-effects may counteract each other; thus, it isdifficult (i.e., non-trivial) to design quantization noise vectors toachieve watermarking via statistics quantization.

[0078] However, prohibiting the usage of overlapping regions introducesundesirable limitations. Some of those limitations are in terms of therate of the embedding of the watermark and the size and/or quantity ofregions. Restricting overlap introduces perceptible artifacts around theboundaries of the non-overlapping regions. Therefore, the watermark maybe easier for an adversary to discover and/or impair.

[0079] The exemplary watermarker, described herein, is not restricted tonon-overlapping regions. Rather, it employs permissively overlappingregions.

[0080]FIG. 3 illustrates an image 300 with multiple overlapping regions310-328. In FIG. 3, the regions are rectangles. Note that many of theillustrated rectangles 310-326 cover common image areas. Some rectangles(such as 328) do not cover any common and is not adjacent to any otherrectangle. The rectangles of FIG. 3 illustrate an example of apseudorandom configuration of regions that are permissively overlapping.

[0081] With the exemplary watermarker, it is possible to overlapregions. In general, it is a trivial task to design quantization noisevectors with non-overlapping regions compared to overlapping regions (inwhich case it becomes non-trivial). With the exemplary watermarker, aquantization noise vector may be globally designed to achievewatermarking of possibly-overlapping regions. We find the desiredquantization noise vector as a solution to an optimization problem.

[0082] Consequently, the exemplary watermarker avoids some of thelimitations that were encountered in case of non-overlapping regions(e.g., the rate of the embedded watermark and the size and/or quantityof regions that are used in watermark embedding). It also avoidsintroduction of perceptible artifacts around the boundaries of thenon-overlapped regions.

[0083] Exemplary Semi-Global Watermark Embedding System

[0084]FIG. 4 shows an exemplary statistics quantization watermarkembedding system 400, which is an example of an embodiment of a portionof the digital goods validation system. This system may be employed asthe watermark encoding system 132 of FIG. 1.

[0085] The watermark embedding system 400 includes a goods obtainer 410,a transformer 420, a partitioner 430, region-statistics calculator 440,a region quantizer 450, a quantization-noise-vector finder 460, and agoods marker 470.

[0086] The watermark embedding system 400 embeds a watermark into adigital good. In this example, digital good is an image. Thus, thesystem 400 embeds a watermark in the DC subband of a discrete wavelettransform (DWT) via quantization of first order statistics ofpseudorandomly chosen regions. Of course, other statistics, subbands,and transforms may be employed.

[0087] The watermark embedding system 400 may minimize the “norm ofadditive quantization disturbance” (see equation (1.2) below).Alternatively, it may minimize the “distance of multiplicativequantization disturbance to unity” (see equation (1.7) below).

[0088] The goods obtainer 410 obtains a digital good 405 (such as anaudio signal or a digital image). It may obtain the good from nearly anysource, such as a storage device or over a network communications link.In addition to obtaining, the goods obtainer 410 may also normalize theamplitude of the good. In that case, it may also be called an amplitudenormalizer.

[0089] The transformer 420 receives the good from the goods obtainer410. The transformer 420 puts the good in canonical form using a set oftransformations. Specifically, discrete wavelet transformation (DWT) maybe employed (particularly, when the input is an image) since itcompactly captures significant signal characteristics via time andfrequency localization. Other transformations may be used. For instance,shift-invariant and direction-selective “complex wavelets” and someother suitable overcomplete wavelet representations (e.g., steerablepyramids, etc.) or even wavelet packets may be good candidates(particularly for images).

[0090] The transformer 420 also finds the DC subband of the initialtransformation 11 of the signal. This DC subband of the transformedsignal is passed to the partitioner 430.

[0091] If, for example, the good is an image I, the transformer 420 mayresize it to a fixed size via interpolation and decimation; apply DWT toresulting image and obtain the DC subband, I_(DC). Let N be the numberof coefficients in I_(DC). The transformer 420 reorders I_(DC) to getN×1 host data s.

[0092] The partitioner 430 separates the transformed good into multiple,pseudorandomly sized, pseudorandomly positioned regions (i.e.,partitions). Such regions may overlap. A secret key K is the seed forpseudorandom number generation here. This same K may be used toreconstruct the regions by an exemplary semi-global statisticsquantization watermark detecting system 500.

[0093] For example, if the good is an image, it might be partitionedinto two-dimensional polygons (e.g., regions) of pseudorandom size andlocation. In another example, if the good is an audio signal, atwo-dimensional representation (using frequency and time) of the audioclip might be separated into two-dimensional polygons (e.g., triangles)of pseudorandom size and location.

[0094] In this implementation, the regions may indeed overlap with eachother.

[0095] If, for example, the good is the above-referenced image I, thepartitioner 430 pseudorandomly generates sufficiently large M polygons(e.g., regions) represented by {R_(i)}_(i = 1)^(M)

[0096] together with corresponding strictly positive pseudorandom weightvectors {α_(i)}_(i = 1)^(M),

[0097] thereby forming the corresponding pseudorandom transformationmatrix T₁ of size M×N. Thus, the pseudo-random statistic correspondingto R_(l) is given by μ_(i), where {μ_(l)} are found via a weightedlinear combination of s in R_(l) (weights are given by the vectors{α₁})”. Later on, these statistics shall be quantized using the length-Mwatermark vector w ε{0, 1}^(M).

[0098] For each region, the region-statistics calculator 440 calculatesstatistics of the multiple regions generated by the partitioner 430.Statistics for each region are calculated. In the paragraph above, it isexplained how pseudo-random linear statistics are computed; however ingeneral these statistics may be, for example, any finite order momentsor some other features that can represent the multimedia object well.

[0099] A suitable statistic for such calculation is the mean (e.g.,average) of the values of the individual coefficients in each region(averages correspond to special case of choosing the vectors {α₁} s.t.they are uniform in regions {R₁} and zero everywhere else). Othersuitable statistics and their robustness are discussed in Venkatesan,Koon, Jakubowski, and Moulin, “Robust image hashing,” Proc. IEEE ICIP2000, Vancouver, Canada, September 2000 for images and in Mihcak andVenkatesan, “A Tool for Robust Audio Information Hiding: A PerceptualAudio Hashing Algorithm”, IHW 2001, Pittsburgh Pa. for audio signals. Inthis document, no information embedding was considered, but similarstatistics were discussed.

[0100] For each region, the region quantizer 450 applies a possiblyhigh-dimensional (e.g., 2, 3, 4) quantization (e.g., lattice vectorquantization) on the output of the region-statistics calculator 440 toobtain quantized data. Of course, other levels of quantization may beemployed. The quantizer 450 may be adaptive or non-adaptive. This is thepart where data embedding takes place; in the quantization process, onechooses a particular quantizer that is indexed by the watermarking bitthat one would like to embed.

[0101] This quantization may be done randomly also (thus introducingsufficient pseudo-randomness in the codebook design). This may be calledrandomized quantization (or randomized rounding). This means that thequantizer may randomly decide to round up or round down. It may do itpseudorandomly (using the secret key). This adds an additional degree ofrobustness and helps hide the watermark.

[0102] The quantization-noise-vector finder 460 finds minimum normquantization noise vector such that watermarked data (which are given bythe sum of the unwatermarked host data and the quantization noisevector) have quantized statistics. It is possible to perceptually“correct” this minimum norm quantization noise vector with a “perceptualcompensation vector,” c. After adding this perceptual compensationvector to the minimum-norm noise vector, the exemplary watermarker stillgets the quantized statistics; however, the marked data have betterperceptual quality.

[0103] One may utilize several methods to find perceptual compensationvector (like those mentioned herein). The exemplary watermarker uses aniterative technique to find this vector. An example of this iterativemethod shall be explained shortly.

[0104] The perceptual compensation vector that it finds may be basedupon a minimum norm of additive quantization disturbance (see equation(1.2) below). Alternatively, it is based on a minimum distance ofmultiplicative quantization disturbance to unity (see equation (1.7)below). See the “Methodological Applications” section below for moredetails on implementations for specific applications.

[0105] The good marker 470 marks the signal by using designedquantization noise vector (e.g., for additive quantization noise vectormethod, the designed quantization noise vector is added to the originalunmarked data to obtain the marked data). The good marker may mark thegood using quantization watermarking techniques. This marked good may bepublicly distributed to consumers and clients.

[0106] The functions of aforementioned components of the exemplarystatistics quantization watermark embedding system 400 of FIG. 4 areexplained further below.

[0107] Exemplary Quantization Watermark Detecting System

[0108]FIG. 5 shows an exemplary statistics quantization watermarkdetecting system 500, which is an example of an embodiment of a portionof the digital goods validation system. This system may be employed asthe watermark detecting system 152 of FIG. 1.

[0109] The watermark detecting system 500 includes a goods obtainer 510,a transformer 520, a partitioner 530, segment-statistics calculator 540,a reconstructor 550, a watermark detector 560, a presenter 570, and adisplay 580.

[0110] The goods obtainer 510, the transformer 520, the partitioner 530,and the segment-statistics calculator 540 of the watermark detectingsystem 500 of FIG. 5 function in a similar manner as similarly labeledcomponents of the watermark embedding system 400 of FIG. 4. Theexception is that the object of these components is a “subject good” (Y)rather than the original good (S). The origins of a “subject” good is anunknown. It may or may not include a watermark. It may have beenmodified.

[0111] Let μ_(y) be the statistics vector for the subject good Y. Foreach region i, let μ_(yi) be the i-th component of the statistics vectorμ_(y). The reconstructor 550 determines the closest reconstruction pointthat corresponds to quantizer 0 (quantizer 1), which is calledμ_(yi)⁰(μ_(yi)¹),

[0112] herein (i.e., performs nearest neighbor decoding).

[0113] The watermark detector 560 determines whether a watermark ispresent. It determines the log likelihood ratio:$L = {\sum\limits_{i = 1}^{M}{\left( {- 1} \right)^{w_{i} + 1}\left\lbrack {\left( {\mu_{yi} - \mu_{yi}^{1}} \right)^{2} - \left( {\mu_{yi} - \mu_{yi}^{0}} \right)^{2}} \right\rbrack}}$

[0114] If L>τ, then the watermark detector 560 declares that thewatermark is present; otherwise, declares that it is not present, whereτ is some threshold and an input parameter to the algorithm. Of course,there may be a range near the threshold where the determiner specifiesthat the watermark presence is indeterminate (e.g., if the likelihood Lis close enough to threshold τ, the detector may output “inconclusive”or “unknown” as a result).

[0115] The presenter 570 may present one of three indications:“watermark present,” “watermark not present,” and “unknown.” Thisinformation is presented on the display 580. Of course, this display maybe any output device. It may also be a storage device.

[0116] The functions of aforementioned components of the exemplarystatistics quantization watermark detecting system 500 of FIG. 5 areexplained further below.

[0117] More Description of the Exemplary Watermarker

[0118] For the following descriptions of an implementation of theexemplary watermarker, assume the following:

[0119] Herein, the following notation is generally used: lowercaseboldface letters to denote vectors and uppercase boldface letters todenote matrices. Unless otherwise specified, Euclidean norm and thecorresponding inner product are used. The subscripts denote a particularelement of a vector. For example a_(i) denotes i^(th) element of vectora. The superscript^(T) denotes the transpose operator.

[0120] Also let

(A) represent the null space of A and

A) represent the range space of A. d_(H)(a, b) stands for the normalizedHamming distance between the equal length binary vectors a and b wherethe normalization is carried out by dividing the usual Hamming distanceby the length of the vectors.

[0121] Problem Definition and Quantization of Random Linear Statistics

[0122] Let s denote the host data (i.e., original digital good) ofdimension N×1 into which watermark w (which is an M×1 vector) to beembedded, where w ε{0, 1}^(M), ∀_(i). Within this notation, the rate ofthe watermark encoding is M/N. In order to embed w_(l), the exemplarywatermarker consider a “randomly chosen” region

, where

⊂{1,2, . . . ,N} (i.e.,

is the set of indices of elements of s to which watermark is going to beembedded. Also, for each w_(i), the exemplary watermarker introduces“randomly chosen” weight vector, α_(i). The watermark vector w isembedded to the “random linear statistics” vector, μ, where${\mu_{i} = {\sum\limits_{j \in R_{i}}\left( {\alpha_{ij}s_{j}} \right)}},$

[0123] where α_(ij) is the jt^(h) element of α_(i).

[0124] For watermark embedding, the exemplary watermarker may employscalar uniform quantizers Q₀ and Q₁. The union of the quantization binsof Q₀ and Q₁ cover the whole real line. Moreover, each quantization binof Q₀ (Q₁) is of length Δ and surrounded by two quantization bins of Q₁(Q₀) each of which is of length Δ. Naturally, this is just one exemplarycodebook construction; other pseudorandom and high-dimensional codes maysimilarly be employed for data embedding purposes.

[0125] The reconstruction levels of each quantizer are chosen randomlywithin the given reconstruction bin. Note that in general it is possibleto choose the bins of each quantizer “randomly” in a non-overlappingfashion (within the limitations of scalar quantization).

[0126] In the more general case, one may choose the Voronoi regions ofvector quantizers Q₀ and Q₁ randomly in a non-overlapping manner, withinwhich the reconstruction levels are also chosen randomly within ahypercube centered at the reconstruction level (e.g., center of gravity)of each Voronoi region of each quantizer (the dimension of the hypercubeis the dimension of the quantization).

[0127] Let {circumflex over (μ)}₀({circumflex over (μ)}₁) be thequantized version of μ using Q₀ (Q₁). Then watermark embedding iscarried out by designing a quantization noise sequence such that theresulting statistics are equal to {circumflex over (μ)}, where${\hat{\mu}}_{i} = \begin{matrix}\left\{ {\hat{\mu}}_{0i} \right. & {{{if}\quad w_{i}} = 0} \\\{ & \quad \\\left\{ {\hat{\mu}}_{1i} \right. & {{{if}\quad w_{i}} = 1}\end{matrix}$

[0128] where {circumflex over (μ)}_(0i)({circumflex over (μ)}_(1i)) isthe i^(th) element of {circumflex over (μ)}₀({circumflex over (μ)}₁),1≦i≦M.

[0129] At the receiver end, the task is (knowing the secret key K) tofind the random statistics of the input data and given the quantizersperform watermark decoding and detection subsequently. The receivercarries out decoding using using an approximate ML decoding rule (e.g.,nearest neighbor decoding). The decision on the existence of thewatermark (actual detection process) is then carried out by finding thelog-likelihood ratios corresponding to {circumflex over (μ)}_(0i) and{circumflex over (μ)}_(1i) and applying thresholding on thelog-likelihood ratio.

[0130] Let x be the watermarked data vector which is of size N×1. Now,the main issue at the encoder side is to “go back” from {circumflex over(μ)} to x (i.e., given s, {R₁}, {α_(i)}, μ, and {circumflex over (μ)})find x, such that${{\sum\limits_{j \in R_{i}}\left( {x_{j}\alpha_{ij}} \right)} = {\hat{\mu}}_{i}},{1 \leq i \leq {M.}}$

[0131] In case of random and permissively overlapping regions, this taskis non-trivial. The exemplary watermarker addresses this case.

[0132] The exemplary watermarker implements at least two approaches toperform quantization of random linear statistics for random andpermissively overlapping regions. In one of these approaches, theexemplary watermarker performs quantization such that norm of theadditive quantization noise is minimized. In the other one, theexemplary watermarker minimizes the distance of the “multiplicativequantization noise” to unity.

[0133] The following terminology is used herein:

[0134] M×1 vector d, where d :={circumflex over (μ)}−μ.

[0135] M×N matrix T where ${T_{ij}:=\begin{matrix}\left\{ \alpha_{ij} \right. & {{{if}\quad j} \in R_{i}} \\\{ & \quad \\\left\{ 0 \right. & {else}\end{matrix}},$

[0136] where T_(ij) is the (i,j)^(th) element of T, 1≦i≦M, 1≦i≦N

[0137] N×1 vector 1, where 1_(l):=1, 1≦i≦N

[0138] Also, Ts=μ and the goal, for at least a portion of the exemplarywatermarker is to find x such that Tx={circumflex over (μ)}.

[0139] Herein, it is assumed for the sake of explanation only (and notlimitation) that M≦N and T is rank M.

[0140] Minimization of Additive Quantization Disturbance

[0141] In this section, the “minimization of additive quantizationdisturbance” approach is described. Its aim is to design x via solvingthe following minimization problem: $\begin{matrix}\begin{matrix}{\min\limits_{x}{{x - s}}} & \quad & {{s.t.\quad {Tx}} = \hat{\mu}}\end{matrix} & (1.1)\end{matrix}$

[0142] The solution to equation (1.1) may be represented by

x=s+T ^(T)(TT ^(T))⁻¹({circumflex over (μ)}−μ)   (1.2)

[0143] Equation (1.2) provides an optimal additive quantizationdisturbance in the minimum Euclidean norm sense. However, oftenEuclidean norm is not a very good measure of perceptual quality. Suchperceptual artifacts would be more common as the quantizer parameter Δincreases. Since there is still no universally accepted quality measurefor perceptual quality, the exemplary watermarker employs its ownapproaches to decrease perceptually annoying artifacts.

[0144] Let {circumflex over (n)}_(MN):=T^(T)(TT^(T))⁻¹({circumflex over(μ)}−μ). Given s, {circumflex over (n)}_(MN) (and hence x=s+{circumflexover (n)}_(MN)), if there are perceptual artifacts created by{circumflex over (n)}_(MN) in principle it is possible to design a“perceptual compensation vector” c such that it compensates for thevisual artifacts created by {circumflex over (n)}_(MN) (i.e.,s+{circumflex over (n)}_(MN)+c has fewer perceptually annoying artifactsthan s+{circumflex over (n)}_(MN)).

[0145] However there is a problem that c might perturb {circumflex over(μ)}. In general, the goal is to find c such that Tc=0 (i.e., c and{circumflex over (n)}_(MN) are orthogonal to each other) and “cminimizes perceptual artifacts that are initially created by {circumflexover (n)}_(MN) ”. But the notion of quantifying perceptual artifacts isnot clear; therefore, it is difficult to really analytically formulatethe problem.

[0146] Hence, the exemplary watermarker follows this approach:

[0147] Given {circumflex over (n)}_(MN) and s, the exemplary watermarkerdesigns C by using some experimental technique so as to decreaseperceptual artifacts. Then the exemplary watermarker projects c on N(T).Let c_(N) be the projection of C on

(T). The expression for c_(N) is given below.

[0148] Given full rank M×N real matrix T and N×1 real vector c, itsprojection on

(T) is given by

c _(N)=(I−T ^(T)(TT ^(T))⁻¹)c,   (1.3)

[0149] where I is N×N identity matrix. Note that for all possiblelength-N real vectors c, c_(N) is orthogonal to {circumflex over(n)}_(MN).

[0150] Therefore, to decrease perceptual artifacts, the exemplarywatermarker relaxes the minimum norm constraint. Once a perceptuallysatisfying compensation vector c is found, the exemplary watermarkeruses its projection on

(T) (via equation (1.3)) and add resulting c_(N) to initiallywatermarked data. In principle this operation can be repeated aninfinite number of times to ensure perceptual satisfaction.

[0151] Examples of other possible approaches to find c include:

[0152] Once {circumflex over (n)}_(MN) is found, apply an FIR low passfilter on it. Let c be the difference between filtered version of{circumflex over (n)}_(MN) and non-filtered version of {circumflex over(n)}_(MN).

[0153] Apply equation (1.3) to find c_(N). Then updated watermarkingquantization noise is given by {circumflex over (n)}_(MN)+c_(N).

[0154] Another approach to decrease perceptibly annoying artifacts couldbe to find a compensation vector c such that c ε

(T) and {circumflex over (n)}_(MN)+c is bandlimited (i.e., smoothenough). Under some mild assumptions, the solution to this approach isgiven below:

[0155] Let D be the size K×N submatrix of N×N DFT (or any frequencydecomposition or approximately decorrelating transform, such as DST,DCT, etc.) matrix such that Da gives the (possibly approximate) DFT (orany frequency decomposition or approximately decorrelating transform,such as DST, DCT, etc.) coefficients of a εR^(N) in the frequency range[π−πK/N, π+πK/n]. Then let c* be the minimum norm solution to c suchthat {circumflex over (n)}_(MN)+c is bandlimited to [0, π−πK/N] and thequantization condition

T(s+{circumflex over (n)} _(MN) +c)={circumflex over (μ)}  (1.4)

[0156] is satisfied. The result is,

c*=A ^(T)(AA ^(T))⁻¹ b,   (1.5)

[0157] where $\begin{matrix}{A = \begin{bmatrix}T \\D\end{bmatrix}} & {and} & {b = \begin{bmatrix}0 \\{{- D}{\hat{n}}_{MN}}\end{bmatrix}}\end{matrix}$

[0158] assuming that M+K<N and A is full rank.

[0159] Minimization of Multiplicative Quantization Disturbance

[0160] In this section, the “minimization of multiplicative quantizationdisturbance” approach is described. Its aim is to design x via solvingthe following minimization problem: $\begin{matrix}{{\min\limits_{x}{{{n - 1}}\quad {s.t.\quad {Tx}}}} = \hat{\mu}} & (1.6)\end{matrix}$

[0161] where x_(l)=n_(i)s_(i), 1≦i≦N.

[0162] The solution to equation (1.6) may be represented by

x _(i) ={circumflex over (n)} _(i) s _(i), 1≦i≦N   (1.7)

[0163] where

{circumflex over (n)}=1+ST ^(T)(TS ² T ^(T))⁻¹({circumflex over (μ)}−μ).  (1.8)

[0164] and S is an N×N diagonal matrix such that S_(ll)=s_(l).

[0165] Methodological Applications

[0166] Application of the Exemplary Watermarker to Image Watermarking

[0167] The exemplary watermarker may employ at least one of two privateblind image watermarking approaches when watermarking digital images.Both approaches embed watermark to a digital image in the DC subband ofa DWT (discrete wavelet transform) via quantization of first orderstatistics of randomly chosen polygons.

[0168] One approach minimizes the norm of additive quantizationdisturbance (i.e., uses the result of equation (1.2)). The otherapproach minimizes the distance of multiplicative quantizationdisturbance to unity (i.e., uses the result of equation(1.7)).

[0169] Watermark Embedding

[0170]FIG. 6 shows the methodological implementation of the exemplarystatistics quantization watermark embedding system 400 (or some portionthereof). This methodological implementation may be performed insoftware, hardware, or a combination thereof.

[0171] At 610 of FIG. 6, the exemplary watermarker obtains the originalgood, such as input image I.

[0172] At 612, the exemplary watermarker transforms image I. It resizesit to a fixed size via bicubic interpolation. The exemplary watermarkerapplies DWT to resulting image and obtains the DC subband, I_(DC). Let Nbe the number of coefficients in I_(DC). The exemplary watermarkerreorders I_(DC) to get N×1 host data s.

[0173] At 614, given length-M watermark vector w ε{0, 1}^(M), theexemplary watermarker partitions the image to generate regions. Suchregions are permissively overlapping.

[0174] It randomly generate sufficiently large M regions represented by{R_(i)}_(i = 1)^(M)

[0175] together with corresponding strictly positive pseudorandomweights {α_(i)}_(i = 1)^(M),

[0176] thereby forming the corresponding random transformation matrix T₁of size M×N. (In one implementation, the same value of random weight isused for each region in order to withstand shifting rotation cropping,etc.)

[0177] A loop starts at 620, so that everything between 620-640(inclusive) is repeated multiple times.

[0178] At 622 of FIG. 6, the exemplary watermarker determines thesignificant coefficient locations in DC subband by applying thresholdingat 2^(nd) level AC subbands. Based on this significance map, theexemplary watermarker modifies T₁ to get T where T is obtained bydeleting the columns of T₁ that correspond to the insignificantcoefficients according to the significance map. T shall be used indetermining the quantization noise, T₁ shall be used in finding therandom linear statistics.

[0179] At 624, the exemplary watermarker computes the random linearstatistics of s: μ=T₁s. It determines the watermark embedded quantizedstatistics, {circumflex over (μ)}: ${\hat{\mu}}_{i} = \begin{matrix}\begin{matrix}\left\{ {{{Q_{0}\left( \mu_{i} \right)}\quad {if}\quad w_{i}} = 0} \right. \\\left\{ \quad \right.\end{matrix} \\\left\{ {{{{Q_{1}\left( \mu_{i} \right)}\quad {if}\quad w_{i}} = 1},} \right.\end{matrix}$

[0180] where Q₀ and Q₁ are two uniform scalar quantizers with step sizeΔ each bin of Q₀(Q₁) is surrounded by two bins of Q₁(Q₀) andreconstruction levels are chosen randomly within a specified area foreach bin centered around the center of the corresponding bin.

[0181] At 626 of FIG. 6, the exemplary watermarker determines theminimum norm (for additive quantization disturbance) quantization noise{circumflex over (n)}=T^(T)(TT^(T))⁻¹({circumflex over (μ)}−μ).Alternatively, it may determine the multiplicative quantizationdisturbance to unity (using equation (1.7)).

[0182] At 628, the exemplary watermarker determines aperceptual-compensation factor (i.e., vector). It applies IDWT on{circumflex over (n)} to go back to spatial domain (assuming zeroentries in all high frequency subbands). Let e be the spatial domainrepresentation. It takes the two-dimensional DCT of e, call it f. Itretains the low-frequency portion of f (via windowing in DCT domain) andapplies IDCT to it. Let the result be e₁.

[0183] It applies an FIR low pass filter on e₁ to get e₂ (use all onesfilter for simplicity). It finds the components of e₂ whose absolutevalues exceed some user determined value, clip those coefficients tothat user determined value. Let the outcome be e₃.

[0184] Furthermore, the exemplary watermarker finds the “perceptualcompensation vector”, c=e₃−e. It applies DWT to c, get the component inthe 2^(nd) level DC subband, let c₁ represent that vector. It projectsc₁ on nullspace of T to get c₂: c₂=c₁−T^(T)(TT^(T))⁻¹Tc₁.

[0185] It applies IDWT to c₂ to go back to spatial domain to get c₃. Itupdates equation on iteration: e=e+c₃.

[0186] At 640 of FIG. 6, the exemplary watermarker repeats blocks620-640 (inclusive) either until it converges or a specified maximumnumber of iterations is achieved.

[0187] At 650, the watermarked data is given by x=s+e where e is foundat the end of iteration. It marks the good. At 660, the process ends.

[0188] Watermark Detection:

[0189]FIG. 7 shows the methodological implementation of the exemplarystatistics quantization watermark detecting system 500 (or some portionthereof). This methodological implementation may be performed insoftware, hardware, or a combination thereof.

[0190] At 710 of FIG. 7, the exemplary watermarker obtains a subjectgood, such as input image Ĩ.

[0191] At 712, the exemplary watermarker transforms the image. Itresizes it to a fixed size via bicubic interpolation, applies DWT toresulting image, and obtains the DC subband, Ĩ_(DC). Let N be the numberof coefficients in Ĩ_(D)C The exemplary watermarker reorders Ĩ_(DC) toget N×1 input data y.

[0192] At 714, the exemplary watermarker forms the random transformationmatrix, T, in the same manner as block 630 of FIG. 6. It also determinesμ_(y)=Ty.

[0193] At 716, for i^(th) component of μ_(y) (which is represented byμ_(yl)), the exemplary watermarker determines the closest reconstructionpoint that corresponds to quantizer 0 (quantizer 1) and call itμ_(yi)⁰(μ_(yi)¹)

[0194] (i.e., nearest neighbor decoding).

[0195] At 718, the exemplary watermarker determines the log likelihoodratio:$L = {\sum\limits_{i = 1}^{M}\quad {\left( {- 1} \right)^{w_{i} + 1}\left\lbrack {\left( {\mu_{yi} - \mu_{yi}^{1}} \right)^{2} - \left( {\mu_{yi} - \mu_{yi}^{0}} \right)^{2}} \right\rbrack}}$

[0196] At 720, if L>τ, then the exemplary watermarker declares that thewatermark is present; otherwise, declares that it is not present. Theprocess ends at 730. Naturally, if L is close enough to τ, then thedetector may be unable to produce any result and hence output“inconclusive” or “unknown”.

[0197] Application to Audio Watermarking

[0198] The exemplary watermarker may employ at least one of the privateblind image watermarking approaches when watermarking digital audiosignals. The approach is to embed watermark to a given audio clip in thelog magnitude domain after MCLT (Modulated Complex Lapped Transform) viaquantization of first order statistics of randomly chosen rectangles. Aparticular frequency band is chosen to embed the watermark data wherethe essential information of the audio clip lies.

[0199] The exemplary watermarker may minimize the norm of additivequantization disturbance (see equation (1.2)) or it may minimizes thedistance of multiplicative quantization disturbance to unity (seeequation (1.7)).

[0200] Watermark Embedding

[0201]FIG. 8 shows the methodological implementation of the exemplarystatistics quantization watermark embedding system 400 (or some portionthereof). This methodological implementation may be performed insoftware, hardware, or a combination thereof.

[0202] At 810 of FIG. 8, the exemplary watermarker obtains the originalgood, such as input audio signal.

[0203] At 812, the exemplary watermarker calculates the logarithm of themagnitude of its MCLT of block size M=2048 and 50% overlapping. Call itS.

[0204] At 814, the exemplary watermarker selects a frequency band of 500Hz to 10 k Hz.

[0205] At 816 of FIG. 8, the exemplary watermarker determines the numberof regions needed according to rate and the input size.

[0206] At 818 of FIG. 8, based on the key, required number of regionsand the hearing thresholds, the exemplary watermarker generates thetransform matrix T. It then calculates T*S=μ. This μ vector is thestatistics to be quantized.

[0207] At 820, it generates the channel code output by using thewatermark as an input to an iteratively decodable code.

[0208] At 822, the exemplary watermarker quantizes μ based on thechannel output and call it {circumflex over (μ)}.

[0209] At 824, the exemplary watermarker updates the samples from S to Xso that T*X={circumflex over (μ)}.

[0210] At 826, the exemplary watermarker goes to the audio domain viainverse MCLT and mark the signal. At 830, the process ends.

[0211] Watermark Detection:

[0212]FIG. 9 shows the methodological implementation of the exemplarystatistics quantization watermark detecting system 500 (or some portionthereof). This methodological implementation may be performed insoftware, hardware, or a combination thereof.

[0213] At 910 of FIG. 9, the exemplary watermarker obtains a subjectgood, such as input audio signal.

[0214] At 912, the exemplary watermarker calculates the logarithm of themagnitude of its MCLT of block size M=2048 and 50% overlapping. Call itY.

[0215] At 914, based on the key, the exemplary watermarker generates thetransform matrix T. It then calculates the statistics as T*Y=μ_(y).

[0216] At 916, the exemplary watermarker calculates the log likelihoodsof the retrieved statistics.

[0217] At 918, it decodes them by using an iterative decoder designedfor the channel code used in the encoder.

[0218] At 920, the exemplary watermarker compares the resultant loglikelihoods with the threshold and declare watermark existence if theformer greater than the latter.

[0219] The process ends at 930.

[0220] Exemplary Computing System and Environment

[0221]FIG. 10 illustrates an example of a suitable computing environment1000 within which an exemplary watermarker, as described herein, may beimplemented (either fully or partially). The computing environment 1000may be utilized in the computer and network architectures describedherein.

[0222] The exemplary computing environment 1000 is only one example of acomputing environment and is not intended to suggest any limitation asto the scope of use or functionality of the computer and networkarchitectures. Neither should the computing environment 1000 beinterpreted as having any dependency or requirement relating to any oneor combination of components illustrated in the exemplary computingenvironment 1000.

[0223] The exemplary watermarker may be implemented with numerous othergeneral purpose or special purpose computing system environments orconfigurations. Examples of well known computing systems, environments,and/or configurations that may be suitable for use include, but are notlimited to, personal computers, server computers, thin clients, thickclients, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, set top boxes, programmable consumerelectronics, network PCs, minicomputers, mainframe computers,distributed computing environments that include any of the above systemsor devices, and the like.

[0224] The exemplary watermarker may be described in the general contextof computer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. Theexemplary watermarker may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotecomputer storage media including memory storage devices.

[0225] The computing environment 1000 includes a general-purposecomputing device in the form of a computer 1002. The components ofcomputer 1002 may include, by are not limited to, one or more processorsor processing units 1004, a system memory 1006, and a system bus 1008that couples various system components including the processor 1004 tothe system memory 1006.

[0226] The system bus 1008 represents one or more of any of severaltypes of bus structures, including a memory bus or memory controller, aperipheral bus, an accelerated graphics port, and a processor or localbus using any of a variety of bus architectures. By way of example, sucharchitectures may include an Industry Standard Architecture (ISA) bus, aMicro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, aVideo Electronics Standards Association (VESA) local bus, and aPeripheral Component Interconnects (PCI) bus also known as a Mezzaninebus.

[0227] Computer 1002 typically includes a variety of computer readablemedia. Such media may be any available media that is accessible bycomputer 1002 and includes both volatile and non-volatile media,removable and non-removable media.

[0228] The system memory 1006 includes computer readable media in theform of volatile memory, such as random access memory (RAM) 1010, and/ornon-volatile memory, such as read only memory (ROM) 1012. A basicinput/output system (BIOS) 1014, containing the basic routines that helpto transfer information between elements within computer 1002, such asduring start-up, is stored in ROM 1012. RAM 1010 typically contains dataand/or program modules that are immediately accessible to and/orpresently operated on by the processing unit 1004.

[0229] Computer 1002 may also include other removable/non-removable,volatile/non-volatile computer storage media. By way of example, FIG. 10illustrates a hard disk drive 1016 for reading from and writing to anon-removable, non-volatile magnetic media (not shown), a magnetic diskdrive 1018 for reading from and writing to a removable, non-volatilemagnetic disk 1020 (e.g., a “floppy disk”), and an optical disk drive1022 for reading from and/or writing to a removable, non-volatileoptical disk 1024 such as a CD-ROM, DVD-ROM, or other optical media. Thehard disk drive 1016, magnetic disk drive 1018, and optical disk drive1022 are each connected to the system bus 1008 by one or more data mediainterfaces 1026. Alternatively, the hard disk drive 1016, magnetic diskdrive 1018, and optical disk drive 1022 may be connected to the systembus 1008 by one or more interfaces (not shown).

[0230] The disk drives and their associated computer-readable mediaprovide non-volatile storage of computer readable instructions, datastructures, program modules, and other data for computer 1002. Althoughthe example illustrates a hard disk 1016, a removable magnetic disk1020, and a removable optical disk 1024, it is to be appreciated thatother types of computer readable media which may store data that isaccessible by a computer, such as magnetic cassettes or other magneticstorage devices, flash memory cards, CD-ROM, digital versatile disks(DVD) or other optical storage, random access memories (RAM), read onlymemories (ROM), electrically erasable programmable read-only memory(EEPROM), and the like, may also be utilized to implement the exemplarycomputing system and environment.

[0231] Any number of program modules may be stored on the hard disk1016, magnetic disk 1020, optical disk 1024, ROM 1012, and/or RAM 1010,including by way of example, an operating system 1026, one or moreapplication programs 1028, other program modules 1030, and program data1032.

[0232] A user may enter commands and information into computer 1002 viainput devices such as a keyboard 1034 and a pointing device 1036 (e.g.,a “mouse”). Other input devices 1038 (not shown specifically) mayinclude a microphone, joystick, game pad, satellite dish, serial port,scanner, and/or the like. These and other input devices are connected tothe processing unit 1004 via input/output interfaces 1040 that arecoupled to the system bus 1008, but may be connected by other interfaceand bus structures, such as a parallel port, game port, or a universalserial bus (USB).

[0233] A monitor 1042 or other type of display device may also beconnected to the system bus 1008 via an interface, such as a videoadapter 1044. In addition to the monitor 1042, other output peripheraldevices may include components such as speakers (not shown) and aprinter 1046 which may be connected to computer 1002 via theinput/output interfaces 1040.

[0234] Computer 1002 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputing device 1048. By way of example, the remote computing device1048 may be a personal computer, portable computer, a server, a router,a network computer, a peer device or other common network node, and thelike. The remote computing device 1048 is illustrated as a portablecomputer that may include many or all of the elements and featuresdescribed herein relative to computer 1002.

[0235] Logical connections between computer 1002 and the remote computer1048 are depicted as a local area network (LAN) 1050 and a general widearea network (WAN) 1052. Such networking environments are commonplace inoffices, enterprise-wide computer networks, intranets, and the Internet.

[0236] When implemented in a LAN networking environment, the computer1002 is connected to a local network 1050 via a network interface oradapter 1054. When implemented in a WAN networking environment, thecomputer 1002 typical includes a modem 1056 or other means forestablishing communications over the wide network 1052. The modem 1056,which may be internal or external to computer 1002, may be connected tothe system bus 1008 via the input/output interfaces 1040 or otherappropriate mechanisms. It is to be appreciated that the illustratednetwork connections are exemplary and that other means of establishingcommunication link(s) between the computers 1002 and 1048 may beemployed.

[0237] In a networked environment, such as that illustrated withcomputing environment 1000, program modules depicted relative to thecomputer 1002, or portions thereof, may be stored in a remote memorystorage device. By way of example, remote application programs 1058reside on a memory device of remote computer 1048. For purposes ofillustration, application programs and other executable programcomponents such as the operating system are illustrated herein asdiscrete blocks, although it is recognized that such programs andcomponents reside at various times in different storage components ofthe computing device 1002, and are executed by the data processor(s) ofthe computer.

[0238] Computer-Executable Instructions

[0239] An implementation of an exemplary watermarker may be described inthe general context of computer-executable instructions, such as programmodules, executed by one or more computers or other devices. Generally,program modules include routines, programs, objects, components, datastructures, etc. that perform particular tasks or implement particularabstract data types. Typically, the functionality of the program modulesmay be combined or distributed as desired in various embodiments.

[0240] Exemplary Operating Environment

[0241]FIG. 10 illustrates an example of a suitable operating environment1000 in which an exemplary watermarker may be implemented. Specifically,the exemplary watermarker(s) described herein may be implemented (whollyor in part) by any program modules 1028-1030 and/or operating system1026 in FIG. 10 or a portion thereof.

[0242] The operating environment is only an example of a suitableoperating environment and is not intended to suggest any limitation asto the scope or use of functionality of the exemplary watermarker(s)described herein. Other well known computing systems, environments,and/or configurations that are suitable for use include, but are notlimited to, personal computers (PCs), server computers, hand-held orlaptop devices, multiprocessor systems, microprocessor-based systems,programmable consumer electronics, wireless phones and equipments,general- and special-purpose appliances, application-specific integratedcircuits (ASICs), network PCs, minicomputers, mainframe computers,distributed computing environments that include any of the above systemsor devices, and the like.

[0243] Computer Readable Media

[0244] An implementation of an exemplary watermarker may be stored on ortransmitted across some form of computer readable media. Computerreadable media may be any available media that may be accessed by acomputer. By way of example, and not limitation, computer readable mediamay comprise “computer storage media” and “communications media.”

[0245] “Computer storage media” include volatile and non-volatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions, data structures, program modules, or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich may be used to store the desired information and which may beaccessed by a computer.

[0246] “Communication media” typically embodies computer readableinstructions, data structures, program modules, or other data in amodulated data signal, such as carrier wave or other transportmechanism. Communication media also includes any information deliverymedia.

[0247] The term “modulated data signal” means a signal that has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared, and other wireless media. Combinations of any of the above arealso included within the scope of computer readable media.

[0248] Conclusion

[0249] Although the invention has been described in language specific tostructural features and/or methodological steps, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or steps described. Rather, thespecific features and steps are disclosed as preferred forms ofimplementing the claimed invention.

1. A computer-readable medium having computer-executable instructionsthat, when executed by a computer, performs a method facilitatingprotection of digital goods, the method comprising: obtaining a digitalgood; transforming the good; partitioning the transform of the good intoa plurality of permissively overlapped regions; calculating statisticsof one or more the regions of the plurality, so that the statistics of aregion are representative of it; quantizing such statistics; generatinga perceptual-compensation factor, which is an approximate representationa combination of the quantized statistics of the plurality of theregions; marking the digital good with the perceptual-compensationfactor.
 2. A medium as recited in claim 1, wherein the partitioningcomprises segmenting transform into a plurality of overlapped regions.3. A medium as recited in claim 1, wherein the partitioning comprisespseudorandomly segmenting transform into a plurality of regions.
 4. Amedium as recited in claim 1, wherein the partitioning comprisespseudorandomly segmenting transform into a plurality of regions, whereinsuch regions are not restrictively non-overlapping.
 5. A medium asrecited in claim 1, wherein the generating comprises finding a minimumnorm of additive quantization disturbance.
 6. A medium as recited inclaim 1, wherein the transforming comprises finding a minimum distanceof multiplicative quantization disturbance.
 7. A medium as recited inclaim 1, wherein the statistics of the calculating comprises one or morefinite order moments of a segment.
 8. A medium as recited in claim 1,wherein the marking comprises embedding a watermark via quantization. 9.A modulated signal generated by a medium as recited in claim
 1. 10. Acomputer comprising one or more computer-readable media as recited inclaim
 1. 11. A computer-readable medium having computer-executableinstructions that, when executed by a computer, performs a methodfacilitating protection of digital goods, the method comprising:transforming a digital good; partitioning the transform of the good intoa plurality regions; calculating statistics of regions, so that thestatistics of a region are representative of it; generating aquantization-noise factor, which is an approximate representation aquantization of the statistics the plurality of regions; marking thedigital good with the perceptual-compensation factor.
 12. A medium asrecited in claim 11, wherein the partitioning comprises segmentingtransform into a plurality of permissively overlapped regions.
 13. Amedium as recited in claim 11, wherein the partitioning comprisessegmenting transform into a plurality of overlapped regions.
 14. Amedium as recited in claim 11, wherein the partitioning comprisespseudorandomly segmenting transform into a plurality of regions.
 15. Amedium as recited in claim 1, wherein the partitioning comprisespseudorandomly segmenting transform into a plurality of regions, whereinsuch regions are not restrictively non-overlapping.
 16. A medium asrecited in claim 11, wherein the generating comprises finding a minimumnorm of additive quantization disturbance.
 17. A medium as recited inclaim 11, wherein the transforming comprises finding a minimum distanceof multiplicative quantization disturbance.
 18. A medium as recited inclaim 11, wherein the statistics of the calculating comprises one ormore finite order moments of a region.
 19. A medium as recited in claim11, wherein the generating a quantization-noise factor comprises:finding a minimum norm quantization noise vector such that watermarkeddata have quantized statistics; perceptually correcting the minimumnoise vector with a perceptual compensation vector.
 20. A medium asrecited in claim 11, wherein the marking comprises embedding a watermarkvia quantization.
 21. A modulated signal generated by a medium asrecited in claim
 11. 22. A computer comprising one or morecomputer-readable media as recited in claim
 11. 23. A computer-readablemedium having computer-executable instructions that, when executed by acomputer, performs a method facilitating protection of digital goods,the method comprising obtaining a digital good; using quantization,watermarking the good with the watermark, wherein such quantization isbased upon semi-global characteristics of the regions of the good, theregions permissively overlapping.
 24. A medium as recited in claim 23,wherein the semi-global characteristics are representativecharacteristics of more than a single element of a good.
 25. A medium asrecited in claim 23, wherein the semi-global characteristics comprisestatistics representative of one or more regions of the good.
 26. Amedium as recited in claim 23, wherein the semi-global characteristicscomprise statistics representative of one or more overlapped regions ofthe good.
 27. A medium as recited in claim 23, wherein the semi-globalcharacteristics comprise statistics representative of one or morepseudorandomly sized regions of the good.
 28. A medium as recited inclaim 23, wherein the semi-global characteristics comprise statisticsrepresentative of one or more pseudorandomly dimensioned regions of thegood.
 29. A medium as recited in claim 23, wherein the semi-globalcharacteristics comprise statistics representative of one or morepseudorandomly dimensioned regions of the good, wherein such regions areoverlapped.
 30. A modulated signal generated by a medium as recited inclaim
 23. 31. A modulated signal generated in accordance with thefollowing acts: providing a server computer in a communications with acommunications network; receiving input from a client computer by way ofthe communications network, the input providing a parameter indicativeof a request for a modulated signal generated by a medium as recited inclaim 23; generating the signal generated by a medium as recited inclaim 23; sending the modulated signal via the communications network.32. A computer comprising one or more computer-readable media as recitedin claim
 23. 33. A method for facilitating the protection of digitalgoods, the method comprising obtaining a digital good; obtaining awatermark; using quantization, watermarking the good with the watermark,wherein such quantization is based upon semi-global characteristics ofthe regions of the good, the regions permissively overlapping.
 34. Amethod as recited in claim 33, wherein the semi-global characteristicsare representative characteristics of more than a single element of agood.
 35. A method as recited in claim 33, wherein the semi-globalcharacteristics comprise statistics representative of one or moreregions of the good.
 36. A medium as recited in claim 23, wherein thesemi-global characteristics comprise statistics representative of one ormore overlapped regions of the good.
 37. A method as recited in claim33, wherein the semi-global characteristics comprise statisticsrepresentative of one or more pseudorandomly dimensioned regions of thegood.
 38. A method as recited in claim 33, wherein the semi-globalcharacteristics comprise statistics representative of one or morepseudorandomly dimensioned regions of the good, wherein such regions areadjacent and non-contiguous.
 39. A computer comprising one or morecomputer-readable media having computer-executable instructions that,when executed by the computer, perform the method as recited in claim33.
 40. A system for facilitating the protection of digital goods, thesystem comprising: a partitioner configured to segment a digital goodinto a plurality of permissively overlapped regions; a region-statisticscalculator configured to calculate statistics of one or more of theplurality of regions, wherein the statistics of a region arerepresentative of that region; a region quantizer configured to quantizesuch statistics of a region a good marker configured to generate amarked good approximately equivalent to a combination of the digitalgood and a perceptual-compensation factor, the factor being anapproximate representation a combination of the quantized statistics ofthe plurality of the regions.
 41. A system as recited in claim 40,wherein the partitioner is further configured to pseudorandomly segmentthe good.
 42. A system as recited in claim 40, wherein the partitioneris further configured to pseudorandomly segment the good, wherein suchregions overlap.